extends Node

## 任务总列表
var task_list:Array
## 已领取任务列表
var received_task:Array
## 已完成任务列表
var completed_task:Array


func _ready():
	if task_list.is_empty():
		task_list = JSON.parse_string(FileAccess.open("res://addons/task_system/任务数据.json",FileAccess.READ).get_as_text())


#领取任务,任务数据从总列表进入“已接取”列表
func get_entrust(task_name:String):
	#条件
	var condition:String
	#遍历数组中同名的任务
	for i in task_list:
		if i["name"] == task_name:
			#先判断是否满足领取条件
			condition = i["submit"]
			if meet_limitation(condition):
				#遍历玩家已接取任务列表
				for b in received_task:
					#如果玩家已经领过这个任务，提示重复。否则接取
					if b["name"] == task_name :
						print("已接取任务《" + str(task_name) + "》请勿重复接取")
						return
					else :
						received_task.append(i)
						return
				received_task.append(i)
				return
			else :
				print("现在还不能领取这个任务")


#放弃任务，从“已接取”列表删除某个任务数据
func remove_task(id:int):
	received_task.remove_at(id)


#提交任务，任务数据从“已接取”列表，进入到“已完成”列表。
func submit_task(task_id:int):
	##条件
	var condition:String
	#遍历已接任务数组
	condition = received_task[task_id]["submit"]
	#判断任务是否完成
	if meet_limitation(condition):
		#完成，把任务转移到已完成列表（数组）
		completed_task.append(received_task[task_id])
		#转移后从已接取列表删除
		received_task.remove_at(task_id)
	else :
		print("任务条件未达成")



#判断任务满足接取条件----------
func meet_limitation(limitation:String):
	return true


